home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 1035 / 1035.xpi / chrome / 1clickweather.jar / content / 1clickweather / js / config / userconfig.js < prev   
Text File  |  2010-01-19  |  35KB  |  1,096 lines

  1. // ∩┐╜ 2005 The Weather Channel Interactive, Inc.  All Rights Reserved.
  2.  
  3. /***************************************
  4.     UserConfig - Manager object for
  5.     user configuration
  6. ****************************************/
  7. function UserConfig() {
  8.     this.fileManager = new FileManager();
  9.     this.info = new UserConfigInfo();
  10.     this.allProfiles = new UserConfigProfilesArray();
  11.  
  12.     // tell the filemanager to "fix" the user config files if needed
  13.     //this.fileManager.updateUserConfigFiles();
  14. }
  15.  
  16. UserConfig.prototype = {
  17.     fileManager : null,
  18.     info : null,
  19.     allProfiles : null,
  20.  
  21.     // THIS METHOD LOADS DATA
  22.     // FROM CONFIG XML
  23.     load : function() {
  24.         var myDOM;
  25.         try {
  26.             myDOM = this.fileManager.getUserConfigDOM();
  27.             var rootElement = myDOM.getElementsByTagName("userconfig")[0];
  28.             // get the info element
  29.             var infoElement = rootElement.getElementsByTagName("info")[0];
  30.             this.info.setVersion(infoElement.getElementsByTagName("version")[0].firstChild.nodeValue);
  31.             this.info.setLastUpdate(infoElement.getElementsByTagName("lastupdate")[0].firstChild.nodeValue);
  32.             this.info.setIsInitial(infoElement.getElementsByTagName("initial")[0].firstChild.nodeValue);
  33.  
  34.                // load userid from config file  
  35.             this.info.setUserId(infoElement.getElementsByTagName("userid")[0].firstChild.nodeValue);
  36.             
  37.             // load dut (daily user tracking) value
  38.             this.info.setLastDUT(infoElement.getElementsByTagName("lastDUT")[0].firstChild.nodeValue);
  39.                 
  40.             
  41.             var allProfilesElement = rootElement.getElementsByTagName("profiles")[0].getElementsByTagName("profile");
  42.             var a = 0;
  43.             for(a = 0;a < allProfilesElement.length;a++) {
  44.                 var nextProfNode = allProfilesElement[a];
  45.                 var nextProfile = new UserConfigProfile();
  46.                 nextProfile.setID(nextProfNode.getAttribute("id"));
  47.                 nextProfile.setIsEnabled(nextProfNode.getAttribute("enabled"));
  48.                 nextProfile.setIsDefault(nextProfNode.getAttribute("default"));
  49.  
  50.                 var locationNode = nextProfNode.getElementsByTagName("setup")[0].getElementsByTagName("location")[0];
  51.                 var unitsNode = nextProfNode.getElementsByTagName("setup")[0].getElementsByTagName("units")[0];
  52.                 var positionNode = nextProfNode.getElementsByTagName("setup")[0].getElementsByTagName("position")[0];
  53.                 var currentCondNode = nextProfNode.getElementsByTagName("currentconditions")[0];
  54.                 var fcstNode = nextProfNode.getElementsByTagName("forecast")[0];
  55.                 var extFcstNode = nextProfNode.getElementsByTagName("extforecast")[0];
  56.                 var videoNode = nextProfNode.getElementsByTagName("video")[0];
  57.                 var radarNode = nextProfNode.getElementsByTagName("radar")[0];
  58.                 var sateliteNode = nextProfNode.getElementsByTagName("satelite")[0];
  59.                 var lifestyleNode = nextProfNode.getElementsByTagName("lifestyle")[0];
  60.  
  61.                 nextProfile.getSetup().getLocation().setLocID(locationNode.getElementsByTagName("locid")[0].firstChild.nodeValue);
  62.                 nextProfile.getSetup().getLocation().setLocType(locationNode.getElementsByTagName("loctype")[0].firstChild.nodeValue);
  63.                 nextProfile.getSetup().getLocation().setLocPres(locationNode.getElementsByTagName("locpres")[0].firstChild.nodeValue);
  64.                 nextProfile.getSetup().getLocation().setIsUS(locationNode.getElementsByTagName("isus")[0].firstChild.nodeValue);
  65.                 nextProfile.getSetup().getLocation().setState(locationNode.getElementsByTagName("state")[0].firstChild.nodeValue);
  66.                 nextProfile.getSetup().getLocation().setCountry(locationNode.getElementsByTagName("country")[0].firstChild.nodeValue);
  67.                 nextProfile.getSetup().getLocation().setTimezone(locationNode.getElementsByTagName("timezone")[0].firstChild.nodeValue);
  68.                 nextProfile.getSetup().getLocation().setObsID(locationNode.getElementsByTagName("obsid")[0].firstChild.nodeValue);
  69.                 nextProfile.getSetup().getLocation().setFcstID(locationNode.getElementsByTagName("fcstid")[0].firstChild.nodeValue);
  70.                 nextProfile.getSetup().getLocation().setIsInDST(locationNode.getElementsByTagName("isindst")[0].firstChild.nodeValue);
  71.                 nextProfile.getSetup().getLocation().setGMTDiff(locationNode.getElementsByTagName("gmtdiff")[0].firstChild.nodeValue);
  72.  
  73.                 nextProfile.getSetup().getUnits().setName(unitsNode.getAttribute("name"));
  74.  
  75.                 nextProfile.getSetup().setPosition(positionNode.getAttribute("type"));
  76.  
  77.                 nextProfile.getCurrentCond().setIsEnabled(currentCondNode.getAttribute("enabled"));
  78.                 nextProfile.getCurrentCond().setType(currentCondNode.getAttribute("type"));
  79.                 nextProfile.getCurrentCond().getToolTip().setIsEnabled(currentCondNode.getElementsByTagName("tooltip")[0].getAttribute("enabled"));
  80.                 nextProfile.getCurrentCond().getToolTip().setType(currentCondNode.getElementsByTagName("tooltip")[0].getAttribute("type"));
  81.                 nextProfile.getCurrentCond().getAlerts().setType(currentCondNode.getElementsByTagName("alerts")[0].getAttribute("type"));
  82.                 nextProfile.getCurrentCond().getAlerts().setInterval(currentCondNode.getElementsByTagName("alerts")[0].getAttribute("interval"));
  83.                 nextProfile.getCurrentCond().getAlerts().setIsEnabled(currentCondNode.getElementsByTagName("alerts")[0].getAttribute("enabled"));
  84.  
  85.  
  86.                 nextProfile.getForecast().setIsEnabled(fcstNode.getAttribute("enabled"));
  87.                 nextProfile.getForecast().setType(fcstNode.getAttribute("type"));
  88.                 nextProfile.getForecast().getToolTip().setIsEnabled(fcstNode.getElementsByTagName("tooltip")[0].getAttribute("enabled"));
  89.                 nextProfile.getForecast().getToolTip().setType(fcstNode.getElementsByTagName("tooltip")[0].getAttribute("type"));
  90.                 nextProfile.getForecast().setForecastSwitch(fcstNode.getElementsByTagName("forecastswitch")[0].firstChild.nodeValue);
  91.  
  92.                 nextProfile.getExtForecast().setIsEnabled(extFcstNode.getAttribute("enabled"));
  93.                 nextProfile.getExtForecast().setType(extFcstNode.getAttribute("type"));
  94.                 nextProfile.getExtForecast().getExtDetails().setDays(extFcstNode.getElementsByTagName("details")[0].getAttribute("days"));
  95.                 nextProfile.getExtForecast().getExtDetails().setTime(extFcstNode.getElementsByTagName("details")[0].getAttribute("time"));
  96.                 nextProfile.getExtForecast().getToolTip().setIsEnabled(extFcstNode.getElementsByTagName("tooltip")[0].getAttribute("enabled"));
  97.                 nextProfile.getExtForecast().getToolTip().setType(extFcstNode.getElementsByTagName("tooltip")[0].getAttribute("type"));
  98.  
  99.                 nextProfile.getVideo().setIsEnabled(videoNode.getAttribute("enabled"));
  100.                 nextProfile.getVideo().setID(videoNode.getAttribute("id"));
  101.  
  102.                 nextProfile.getRadar().setIsEnabled(radarNode.getAttribute("enabled"));
  103.                 nextProfile.getRadar().setID(radarNode.getAttribute("id"));
  104.  
  105.                 nextProfile.getSatelite().setIsEnabled(sateliteNode.getAttribute("enabled"));
  106.                 nextProfile.getSatelite().setID(sateliteNode.getAttribute("id"));
  107.  
  108.                 nextProfile.getLifeStyle().setIsEnabled(lifestyleNode.getAttribute("enabled"));
  109.                 var allLinks = lifestyleNode.getElementsByTagName("links")[0].getElementsByTagName("link");
  110.                 var b=0;
  111.                 for(b=0;b<allLinks.length;b++) {
  112.                     nextProfile.getLifeStyle().addLink(allLinks[b].getAttribute("id"));
  113.                 }
  114.                 this.allProfiles.addProfile(nextProfile);
  115.             }
  116.         } catch(e) {
  117.             alert(e);
  118.         }
  119.     },
  120.  
  121.     // THIS METHOD WRITES DATA
  122.     // TO CONFIG XML
  123.     save : function() {
  124.         try {
  125.             this.fileManager.saveUserConfigToFile(this.toDOM());
  126.         } catch(e) {
  127.             alert(e);
  128.         }
  129.     },
  130.  
  131.     // THIS METHOD TRANSFORMS THIS OBJECT
  132.     // TO XML DOM
  133.     toDOM : function() {
  134.         var xmlDoc = document.implementation.createDocument("", "", null);
  135.         var rootElement = xmlDoc.createElement("userconfig");
  136.  
  137.         var info = xmlDoc.createElement("info");
  138.         var infoVersion = xmlDoc.createElement("version");
  139.         
  140.         // make sure the version is the latest one!
  141.         if(this.getInfo().getVersion() != '1.1.9.1') {
  142.             infoVersion.appendChild(xmlDoc.createTextNode('1.1.9.1'));
  143.         } else {
  144.             infoVersion.appendChild(xmlDoc.createTextNode(this.getInfo().getVersion()));
  145.         }
  146.         // lastupdate
  147.         var infoLastUpdate = xmlDoc.createElement("lastupdate");
  148.         infoLastUpdate.appendChild(xmlDoc.createTextNode(this.getInfo().getLastUpdate()));
  149.         // initial
  150.         var infoInitial = xmlDoc.createElement("initial");
  151.         infoInitial.appendChild(xmlDoc.createTextNode(this.getInfo().getIsInitial()));
  152.         
  153.         // this line of code write userId code
  154.         var infoUserIdElement = xmlDoc.createElement("userid");
  155.         infoUserIdElement.appendChild(xmlDoc.createTextNode(this.getInfo().getUserId()));
  156.         
  157.         // write DUT (daily user tracking) value
  158.         var dailyUserTracking = xmlDoc.createElement("lastDUT");
  159.         dailyUserTracking.appendChild(xmlDoc.createTextNode(this.getInfo().getLastDUT()));
  160.         
  161.         info.appendChild(infoVersion);
  162.         info.appendChild(infoLastUpdate);
  163.         info.appendChild(infoInitial);
  164.         info.appendChild(infoUserIdElement);
  165.         info.appendChild(dailyUserTracking);
  166.  
  167.         rootElement.appendChild(info);
  168.  
  169.         var allprofiles = xmlDoc.createElement("profiles");
  170.         var profs = this.allProfiles.getAll();
  171.         for(var nextProfKey in profs) {
  172.             var nextProf = profs[nextProfKey];
  173.             var nextProfElement = xmlDoc.createElement("profile");
  174.             nextProfElement.setAttribute("id", nextProf.getID());
  175.             nextProfElement.setAttribute("enabled", nextProf.getIsEnabled());
  176.             nextProfElement.setAttribute("default", nextProf.getIsDefault());
  177.  
  178.             var nextProfConfigElement = xmlDoc.createElement("setup");
  179.             var nextProfConfigLocationElement = xmlDoc.createElement("location");
  180.  
  181.             var locidElement = xmlDoc.createElement("locid");
  182.             locidElement.appendChild(xmlDoc.createTextNode(nextProf.getSetup().getLocation().getLocID()));
  183.             nextProfConfigLocationElement.appendChild(locidElement);
  184.             var loctypeElement = xmlDoc.createElement("loctype");
  185.             loctypeElement.appendChild(xmlDoc.createTextNode(nextProf.getSetup().getLocation().getLocType()));
  186.             nextProfConfigLocationElement.appendChild(loctypeElement);
  187.             var locpresElement = xmlDoc.createElement("locpres");
  188.             locpresElement.appendChild(xmlDoc.createTextNode(nextProf.getSetup().getLocation().getLocPres()));
  189.             nextProfConfigLocationElement.appendChild(locpresElement);
  190.             var locisus = xmlDoc.createElement("isus");
  191.             locisus.appendChild(xmlDoc.createTextNode(nextProf.getSetup().getLocation().getIsUS()));
  192.             nextProfConfigLocationElement.appendChild(locisus);
  193.             var locstate = xmlDoc.createElement("state");
  194.             locstate.appendChild(xmlDoc.createTextNode(nextProf.getSetup().getLocation().getState()));
  195.             nextProfConfigLocationElement.appendChild(locstate);
  196.             var loccountry = xmlDoc.createElement("country");
  197.             loccountry.appendChild(xmlDoc.createTextNode(nextProf.getSetup().getLocation().getCountry()));
  198.             nextProfConfigLocationElement.appendChild(loccountry);
  199.             var loctimezone = xmlDoc.createElement("timezone");
  200.             loctimezone.appendChild(xmlDoc.createTextNode(nextProf.getSetup().getLocation().getTimezone()));
  201.             nextProfConfigLocationElement.appendChild(loctimezone);
  202.             var locobsid = xmlDoc.createElement("obsid");
  203.             locobsid.appendChild(xmlDoc.createTextNode(nextProf.getSetup().getLocation().getObsID()));
  204.             nextProfConfigLocationElement.appendChild(locobsid);
  205.             var locfcstid = xmlDoc.createElement("fcstid");
  206.             locfcstid.appendChild(xmlDoc.createTextNode(nextProf.getSetup().getLocation().getFcstID()));
  207.             nextProfConfigLocationElement.appendChild(locfcstid);
  208.             var locdst = xmlDoc.createElement("isindst");
  209.             locdst.appendChild(xmlDoc.createTextNode(nextProf.getSetup().getLocation().getIsInDST()));
  210.             nextProfConfigLocationElement.appendChild(locdst);
  211.             var locgmt = xmlDoc.createElement("gmtdiff");
  212.             locgmt.appendChild(xmlDoc.createTextNode(nextProf.getSetup().getLocation().getGMTDiff()));
  213.             nextProfConfigLocationElement.appendChild(locgmt);
  214.             nextProfConfigElement.appendChild(nextProfConfigLocationElement);
  215.  
  216.             var nextProfUnitsElement = xmlDoc.createElement("units");
  217.             nextProfUnitsElement.setAttribute("name", nextProf.getSetup().getUnits().getName());
  218.             var nextProfPositionElement = xmlDoc.createElement("position");
  219.             nextProfPositionElement.setAttribute("type", nextProf.getSetup().getPosition());
  220.  
  221.             nextProfConfigElement.appendChild(nextProfUnitsElement);
  222.             nextProfConfigElement.appendChild(nextProfPositionElement);
  223.  
  224.             var currentCondElement = xmlDoc.createElement("currentconditions");
  225.             currentCondElement.setAttribute("enabled", nextProf.getCurrentCond().getIsEnabled());
  226.             currentCondElement.setAttribute("type", nextProf.getCurrentCond().getType());
  227.             var currentCondTooltipElement = xmlDoc.createElement("tooltip");
  228.             currentCondTooltipElement.setAttribute("enabled", nextProf.getCurrentCond().getToolTip().getIsEnabled());
  229.             currentCondTooltipElement.setAttribute("type", nextProf.getCurrentCond().getToolTip().getType());
  230.             currentCondElement.appendChild(currentCondTooltipElement);
  231.             var currentCondAlertsElement = xmlDoc.createElement("alerts");
  232.             currentCondAlertsElement.setAttribute("type", nextProf.getCurrentCond().getAlerts().getType());
  233.             currentCondAlertsElement.setAttribute("interval", nextProf.getCurrentCond().getAlerts().getInterval());
  234.             currentCondAlertsElement.setAttribute("enabled", nextProf.getCurrentCond().getAlerts().getIsEnabled());
  235.             currentCondElement.appendChild(currentCondAlertsElement);
  236.             nextProfConfigElement.appendChild(currentCondElement);
  237.  
  238.             var forecastElement = xmlDoc.createElement("forecast");
  239.             forecastElement.setAttribute("enabled", nextProf.getForecast().getIsEnabled());
  240.             forecastElement.setAttribute("type", nextProf.getForecast().getType());
  241.             var fcstCondForecastSwitchElement = xmlDoc.createElement("forecastswitch");
  242.             fcstCondForecastSwitchElement.appendChild(xmlDoc.createTextNode(nextProf.getForecast().getForecastSwitch()));
  243.             forecastElement.appendChild(fcstCondForecastSwitchElement);
  244.             var fcstCondTooltipElement = xmlDoc.createElement("tooltip");
  245.             fcstCondTooltipElement.setAttribute("enabled", nextProf.getForecast().getToolTip().getIsEnabled());
  246.             fcstCondTooltipElement.setAttribute("type", nextProf.getForecast().getToolTip().getType());
  247.             forecastElement.appendChild(fcstCondTooltipElement);
  248.             nextProfConfigElement.appendChild(forecastElement);
  249.  
  250.             var extForecastElement = xmlDoc.createElement("extforecast");
  251.             extForecastElement.setAttribute("enabled", nextProf.getExtForecast().getIsEnabled());
  252.             extForecastElement.setAttribute("type", nextProf.getExtForecast().getType());
  253.             var extForecastTooltipElement = xmlDoc.createElement("tooltip");
  254.             extForecastTooltipElement.setAttribute("enabled", nextProf.getExtForecast().getToolTip().getIsEnabled());
  255.             extForecastTooltipElement.setAttribute("type", nextProf.getExtForecast().getToolTip().getType());
  256.             extForecastElement.appendChild(extForecastTooltipElement);
  257.             var extForecastDetailElement = xmlDoc.createElement("details");
  258.             extForecastDetailElement.setAttribute("days", nextProf.getExtForecast().getExtDetails().getDays());
  259.             extForecastDetailElement.setAttribute("time", nextProf.getExtForecast().getExtDetails().getTime());
  260.             extForecastElement.appendChild(extForecastDetailElement);
  261.             nextProfConfigElement.appendChild(extForecastElement);
  262.  
  263.             var videoElement = xmlDoc.createElement("video");
  264.             videoElement.setAttribute("enabled", nextProf.getVideo().getIsEnabled());
  265.             videoElement.setAttribute("id", nextProf.getVideo().getID());
  266.             nextProfConfigElement.appendChild(videoElement);
  267.  
  268.             var radarElement = xmlDoc.createElement("radar");
  269.             radarElement.setAttribute("enabled", nextProf.getRadar().getIsEnabled());
  270.             radarElement.setAttribute("id", nextProf.getRadar().getID());
  271.             nextProfConfigElement.appendChild(radarElement);
  272.  
  273.             var sateliteElement = xmlDoc.createElement("satelite");
  274.             sateliteElement.setAttribute("enabled", nextProf.getSatelite().getIsEnabled());
  275.             sateliteElement.setAttribute("id", nextProf.getSatelite().getID());
  276.             nextProfConfigElement.appendChild(sateliteElement);
  277.  
  278.             var lifestyleElement = xmlDoc.createElement("lifestyle");
  279.             lifestyleElement.setAttribute("enabled", nextProf.getLifeStyle().getIsEnabled());
  280.             var linksElement = xmlDoc.createElement("links");
  281.             var allLinks = nextProf.getLifeStyle().getLinks();
  282.             for(var newLink in allLinks) {
  283.                 var newLinkElement = xmlDoc.createElement("link");
  284.                 newLinkElement.setAttribute("id", newLink);
  285.                 linksElement.appendChild(newLinkElement);
  286.             }
  287.             lifestyleElement.appendChild(linksElement);
  288.             nextProfConfigElement.appendChild(lifestyleElement);
  289.  
  290.             nextProfElement.appendChild(nextProfConfigElement);
  291.             allprofiles.appendChild(nextProfElement);
  292.         }
  293.  
  294.         rootElement.appendChild(allprofiles);
  295.         // add the root element!
  296.         xmlDoc.appendChild(rootElement);
  297.  
  298.         return xmlDoc;
  299.     },
  300.  
  301.     // THIS METHOD TRANSFORMS THIS OBJECT
  302.     // TO XML STRING
  303.     toXMLString : function() {
  304.         var myDOM = this.toDOM();
  305.         return myDOM.xml;
  306.     },
  307.  
  308.     getInfo : function() {
  309.         return this.info;
  310.     },
  311.  
  312.     setInfo : function(myInfo) {
  313.         this.info = myInfo;
  314.     },
  315.  
  316.     getAllProfiles : function() {
  317.         return this.allProfiles;
  318.     },
  319.  
  320.     setAllProfile : function(myProfiles) {
  321.         this.allProfiles = myProfiles;
  322.     }
  323. };
  324.  
  325. /*************************************
  326.     UserConfigInfo - Includes info
  327.     on this userconfig object
  328. *************************************/
  329. function UserConfigInfo() {
  330. }
  331.  
  332. UserConfigInfo.prototype = {
  333.     version : null,
  334.     lastupdate : null,
  335.     initial : null,
  336.     userid : null,
  337.     lastDUT: null,
  338.  
  339.     setVersion : function(myVersion) {
  340.         this.version = myVersion;
  341.     },
  342.  
  343.     getVersion : function() {
  344.         return this.version;
  345.     },
  346.  
  347.     setLastUpdate : function(myLastUpdate) {
  348.         this.lastupdate = myLastUpdate;
  349.     },
  350.  
  351.     getLastUpdate : function() {
  352.         return this.lastupdate;
  353.     },
  354.  
  355.     setIsInitial : function(myIsInitial) {
  356.         this.initial = myIsInitial;
  357.     },
  358.  
  359.     getIsInitial : function() {
  360.         return this.initial;
  361.     },
  362.         
  363.     getUserId : function(){
  364.         return this.userid;
  365.     },
  366.     
  367.     setUserId : function(myUserId){
  368.         this.userid = myUserId;
  369.     },
  370.     
  371.     /* 
  372.      * 
  373.      * 
  374.      * Represent getter and setter last daily user tracking (DUT) value. This value is stored on userconfig xml file.
  375.      *
  376.      */   
  377.     getLastDUT : function(){
  378.         return this.lastDUT;
  379.     },
  380.     
  381.     setLastDUT : function(value){
  382.         this.lastDUT = value;
  383.     }
  384. };
  385.  
  386. /*************************************************
  387.     UserConfigProfilesArray - Includes profile info
  388.     array of this userconfig object
  389. **************************************************/
  390. function UserConfigProfilesArray() {
  391.     this.allProfiles = {};
  392. }
  393.  
  394. UserConfigProfilesArray.prototype = {
  395.     allProfiles : null,
  396.  
  397.     addProfile : function(newProfile) {
  398.         this.allProfiles[newProfile.getID()] = newProfile;
  399.     },
  400.  
  401.     getDefaultProfile : function() {
  402.         return this.allProfiles["default"];
  403.     },
  404.  
  405.     setDefaultProfile : function(defaultProfileID) {
  406.         this.allProfiles["default"] = defaultProfileID;
  407.     },
  408.  
  409.     getProfile : function(profileID) {
  410.         return this.allProfiles[profileID];
  411.     },
  412.  
  413.     getAll : function() {
  414.         return this.allProfiles;
  415.     }
  416. };
  417.  
  418. /*************************************************
  419.     UserConfigProfile - Includes profile info
  420.     of this userconfig object
  421. **************************************************/
  422. function UserConfigProfile(){
  423.     this.setup = new UserConfigSetup();
  424.     this.currentcond = new UserConfigCurrentCond();
  425.     this.forecast = new UserConfigForecast();
  426.     this.extforecast = new UserConfigExtForecast();
  427.     this.video = new UserConfigVideo();
  428.     this.radar = new UserConfigRadar();
  429.     this.satelite = new UserConfigSatelite();
  430.     this.lifestyle = new UserConfigLifeStyle();
  431. };
  432.  
  433. UserConfigProfile.prototype = {
  434.     id : null,
  435.     enabled : null,
  436.     isdefault : null,
  437.     setup : null,
  438.     currentcond : null,
  439.     forecast : null,
  440.     extforecast : null,
  441.     video : null,
  442.     radar : null,
  443.     satelite : null,
  444.     lifestyle : null,
  445.  
  446.     getID : function() {
  447.         return this.id;
  448.     },
  449.  
  450.     setID : function(myID) {
  451.         this.id = myID;
  452.     },
  453.  
  454.     getIsEnabled : function() {
  455.         return this.enabled;
  456.     },
  457.  
  458.     setIsEnabled : function(myIsEnabled) {
  459.         this.enabled = myIsEnabled;
  460.     },
  461.  
  462.     getIsDefault : function() {
  463.         return this.isdefault;
  464.     },
  465.  
  466.     setIsDefault : function(myIsDefault) {
  467.         this.isdefault = myIsDefault;
  468.     },
  469.  
  470.     getSetup : function() {
  471.         return this.setup;
  472.     },
  473.  
  474.     setSetup : function(mySetup) {
  475.         this.setup = mySetup;
  476.     },
  477.  
  478.     getCurrentCond : function() {
  479.         return this.currentcond;
  480.     },
  481.  
  482.     setCurrentCond : function(myCurrentCond) {
  483.         this.currentcond = myCurrentCond;
  484.     },
  485.  
  486.     getForecast : function() {
  487.         return this.forecast;
  488.     },
  489.  
  490.     setForecast : function(myForecast) {
  491.         this.forecast = myForecast;
  492.     },
  493.  
  494.     getExtForecast : function() {
  495.         return this.extforecast;
  496.     },
  497.  
  498.     setExtForecast : function(myExtForecast) {
  499.         this.extforecast = myExtForecast;
  500.     },
  501.  
  502.     getVideo : function() {
  503.         return this.video;
  504.     },
  505.  
  506.     setVideo : function(myVideo) {
  507.         this.video = myVideo;
  508.     },
  509.  
  510.     getRadar : function() {
  511.         return this.radar;
  512.     },
  513.  
  514.     setRadar : function(myRadar) {
  515.         this.radar = myRadar;
  516.     },
  517.  
  518.     getSatelite : function() {
  519.         return this.satelite;
  520.     },
  521.  
  522.     setSatelite : function(mySatelite) {
  523.         this.satelite = mySatelite;
  524.     },
  525.  
  526.     getLifeStyle : function() {
  527.         return this.lifestyle;
  528.     },
  529.  
  530.     setLifeStyle : function(myLifeStyle) {
  531.         this.lifestyle = myLifeStyle;
  532.     }
  533. };
  534.  
  535. /***************************************
  536.     UserconfigSetup - contains user
  537.     config setup info for a profile
  538. ***************************************/
  539. function UserConfigSetup() {
  540.     this.location = new UserConfigSetupLocation();
  541.     this.units = new UserConfigSetupUnits();
  542.     this.position = "";
  543. }
  544.  
  545. UserConfigSetup.prototype = {
  546.     location : null,
  547.     units : null,
  548.     position : null,
  549.  
  550.     getLocation : function() {
  551.         return this.location;
  552.     },
  553.  
  554.     setLocation : function(myLocation) {
  555.         this.location = myLocation;
  556.     },
  557.  
  558.     getUnits : function() {
  559.         return this.units;
  560.     },
  561.  
  562.     setUnits : function(myUnits) {
  563.         this.units = myUnits;
  564.     },
  565.  
  566.     getPosition : function() {
  567.         return this.position;
  568.     },
  569.  
  570.     setPosition : function(myPosition) {
  571.         this.position = myPosition;
  572.     }
  573. };
  574.  
  575. /*********************************************
  576.     UserconfigSetupLocation - contains user
  577.     config setup location info for a profile
  578. *********************************************/
  579. function UserConfigSetupLocation() {
  580. }
  581.  
  582. UserConfigSetupLocation.prototype = {
  583.     locid : null,
  584.     loctype : null,
  585.     locpres : null,
  586.     isus : null,
  587.     state: null,
  588.     country : null,
  589.     timezone : null,
  590.     obsid : null,
  591.     fcstid : null,
  592.     isindst : null,
  593.     gmtdiff : null,
  594.  
  595.     getObsID : function() {
  596.         return this.obsid;
  597.     },
  598.  
  599.     setObsID : function(myObsID) {
  600.         this.obsid = myObsID;
  601.     },
  602.  
  603.     getFcstID : function() {
  604.         return this.fcstid;
  605.     },
  606.  
  607.     setFcstID : function(myFcstID) {
  608.         this.fcstid = myFcstID;
  609.     },
  610.  
  611.     getIsInDST : function() {
  612.         return this.isindst;
  613.     },
  614.  
  615.     setIsInDST : function(myIsInDST) {
  616.         this.isindst = myIsInDST;
  617.     },
  618.  
  619.     getGMTDiff : function() {
  620.         return this.gmtdiff;
  621.     },
  622.  
  623.     setGMTDiff : function(myGMTDiff) {
  624.         this.gmtdiff = myGMTDiff;
  625.     },
  626.  
  627.     getLocID : function() {
  628.         return this.locid;
  629.     },
  630.  
  631.     setLocID : function(myLocID) {
  632.         this.locid = myLocID;
  633.     },
  634.  
  635.     getLocType : function() {
  636.         return this.loctype;
  637.     },
  638.  
  639.     setLocType : function(myLocType) {
  640.         this.loctype = myLocType;
  641.     },
  642.  
  643.     getLocPres : function() {
  644.         return this.locpres;
  645.     },
  646.  
  647.     setLocPres : function(myLocPres) {
  648.         this.locpres = myLocPres;
  649.     },
  650.  
  651.     getIsUS : function() {
  652.         return this.isus;
  653.     },
  654.  
  655.     setIsUS : function(myIsUS) {
  656.         this.isus = myIsUS;
  657.     },
  658.  
  659.     getState : function() {
  660.         return this.state;
  661.     },
  662.  
  663.     setState : function(myState) {
  664.         this.state = myState;
  665.     },
  666.  
  667.     getCountry : function() {
  668.         return this.country;
  669.     },
  670.  
  671.     setCountry : function(myCountry) {
  672.         this.country = myCountry;
  673.     },
  674.  
  675.     getTimezone : function() {
  676.         return this.timezone;
  677.     },
  678.  
  679.     setTimezone : function(myTimezone) {
  680.         this.timezone = myTimezone;
  681.     }
  682. };
  683.  
  684. /*********************************************
  685.     UserconfigSetupUnits - contains user
  686.     config setup units info for a profile
  687. *********************************************/
  688. function UserConfigSetupUnits() {
  689. }
  690.  
  691. UserConfigSetupUnits.prototype = {
  692.     name : null,
  693.     //temperature : null,
  694.     //pressure : null,
  695.     //distance : null,
  696.     //precipitation : null,
  697.     //speed : null,
  698.  
  699.     getName : function() {
  700.         return this.name;
  701.     },
  702.  
  703.     setName : function(myName) {
  704.         this.name = myName;
  705.     }//,
  706.  
  707.     //getTemperature : function() {
  708.     //    return this.temperature;
  709.     //},
  710.  
  711.     //setTemperature : function(myTemperature) {
  712.     //    this.temperature = myTemperature;
  713.     //},
  714.  
  715.     //getPressure : function() {
  716.     //    return this.pressure;
  717.     //},
  718.  
  719.     //setPressure : function(myPressure) {
  720.     //    this.pressure = myPressure;
  721.     //},
  722.  
  723.     //getDistance : function() {
  724.     //    return this.distance;
  725.     //},
  726.  
  727.     //setDistance : function(myDistance) {
  728.     //    this.distance = myDistance;
  729.     //},
  730.  
  731.     //getPrecipitation : function() {
  732.     //    return this.precipitation;
  733.     //},
  734.  
  735.     //setPrecipitation : function(myPrecipitation) {
  736.     //    this.precipitation = myPrecipitation;
  737.     //},
  738.  
  739.     //getSpeed : function() {
  740.     //    return this.precipitation;
  741.     //},
  742.  
  743.     //setSpeed : function(mySpeed) {
  744.     //    this.speed = mySpeed;
  745.     //}
  746. };
  747.  
  748. /*********************************************
  749.     UserConfigCurrentCond - contains user
  750.    current cond info for a profile
  751. *********************************************/
  752. function UserConfigCurrentCond() {
  753.     this.tooltip = new Tooltip();
  754.     this.alerts = new Alerts();
  755. }
  756.  
  757. UserConfigCurrentCond.prototype = {
  758.     tooltip : null,
  759.     alerts : null,
  760.     enabled : null,
  761.     type : null,
  762.  
  763.     getToolTip : function() {
  764.         return this.tooltip;
  765.     },
  766.  
  767.     setToolTip : function(myTooltip) {
  768.         this.tooltip = myTooltip;
  769.     },
  770.  
  771.     getAlerts : function() {
  772.         return this.alerts;
  773.     },
  774.  
  775.     setAlerts : function(myAlerts) {
  776.         this.alerts = myAlerts;
  777.     },
  778.  
  779.     getIsEnabled : function() {
  780.         return this.enabled;
  781.     },
  782.  
  783.     setIsEnabled : function(myIsEnabled) {
  784.         this.enabled = myIsEnabled;
  785.     },
  786.  
  787.     getType : function() {
  788.         return this.type;
  789.     },
  790.  
  791.     setType : function(myType) {
  792.         this.type = myType;
  793.     }
  794. };
  795.  
  796. /*********************************************
  797.     Tooltip - contains user
  798.    tooltip info for a profile
  799. *********************************************/
  800. function Tooltip() {
  801. }
  802.  
  803. Tooltip.prototype = {
  804.     enabled : null,
  805.     type : null,
  806.  
  807.     getIsEnabled : function() {
  808.         return this.enabled;
  809.     },
  810.  
  811.     setIsEnabled : function(myIsEnabled) {
  812.         this.enabled = myIsEnabled;
  813.     },
  814.  
  815.     getType : function() {
  816.         return this.type;
  817.     },
  818.  
  819.     setType : function(myType) {
  820.         this.type = myType;
  821.     }
  822. };
  823.  
  824. /*********************************************
  825.     Alerts - contains user
  826.    alerts info for a profile
  827. *********************************************/
  828. function Alerts() {
  829. }
  830.  
  831. Alerts.prototype = {
  832.     interval : null,
  833.     type : null,
  834.     enabled : null,
  835.  
  836.     getInterval : function() {
  837.         return this.interval;
  838.     },
  839.  
  840.     setInterval : function(myInterval) {
  841.         this.interval = myInterval;
  842.     },
  843.  
  844.     getType : function() {
  845.         return this.type;
  846.     },
  847.  
  848.     setType : function(myType) {
  849.         this.type = myType;
  850.     },
  851.  
  852.     getIsEnabled : function() {
  853.         return this.enabled;
  854.     },
  855.  
  856.     setIsEnabled : function(myIsEnabled) {
  857.         this.enabled = myIsEnabled;
  858.     }
  859. };
  860.  
  861. /*********************************************
  862.     UserConfigForecast - contains user
  863.    forecast info for a profile
  864. *********************************************/
  865. function UserConfigForecast() {
  866.     this.tooltip = new Tooltip();
  867. }
  868.  
  869. UserConfigForecast.prototype = {
  870.     tooltip : null,
  871.     forecastswitch : null,
  872.     enabled : null,
  873.     type : null,
  874.  
  875.     getToolTip : function() {
  876.         return this.tooltip;
  877.     },
  878.  
  879.     setToolTip : function(myTooltip) {
  880.         this.tooltip = myTooltip;
  881.     },
  882.  
  883.     getForecastSwitch : function() {
  884.         return this.forecastswitch;
  885.     },
  886.  
  887.     setForecastSwitch : function(myForecastSwitch) {
  888.         this.forecastswitch = myForecastSwitch;
  889.     },
  890.  
  891.     getIsEnabled : function() {
  892.         return this.enabled;
  893.     },
  894.  
  895.     setIsEnabled : function(myIsEnabled) {
  896.         this.enabled = myIsEnabled;
  897.     },
  898.  
  899.     getType : function() {
  900.         return this.type;
  901.     },
  902.  
  903.     setType : function(myType) {
  904.         this.type = myType;
  905.     }
  906. };
  907.  
  908. /*********************************************
  909.     UserConfigExtForecast - contains user
  910.    ext forecast info for a profile
  911. *********************************************/
  912. function UserConfigExtForecast() {
  913.     this.tooltip = new Tooltip();
  914.     this.extDetails = new UserConfigExtForecastDetails();
  915. };
  916.  
  917. UserConfigExtForecast.prototype = {
  918.     extDetails : null,
  919.     enabled : null,
  920.     type : null,
  921.     tooltip : null,
  922.  
  923.     getToolTip : function() {
  924.         return this.tooltip;
  925.     },
  926.  
  927.     setToolTip : function(myTooltip) {
  928.         this.tooltip = myTooltip;
  929.     },
  930.  
  931.     getIsEnabled : function() {
  932.         return this.enabled;
  933.     },
  934.  
  935.     setIsEnabled : function(myIsEnabled) {
  936.         this.enabled = myIsEnabled;
  937.     },
  938.  
  939.     getType : function() {
  940.         return this.type;
  941.     },
  942.  
  943.     setType : function(myType) {
  944.         this.type = myType;
  945.     },
  946.  
  947.     getExtDetails : function() {
  948.         return this.extDetails;
  949.     }
  950. };
  951.  
  952. /*********************************************
  953.     UserConfigExtForecastDetails - contains user
  954.    ext forecast details info for a profile
  955. *********************************************/
  956. function UserConfigExtForecastDetails() {
  957. }
  958.  
  959. UserConfigExtForecastDetails.prototype = {
  960.     days : null,
  961.     time : null,
  962.  
  963.     getDays : function() {
  964.         return this.days;
  965.     },
  966.  
  967.     setDays : function(myDays) {
  968.         this.days = myDays;
  969.     },
  970.  
  971.     getTime : function() {
  972.         return this.time;
  973.     },
  974.  
  975.     setTime : function(myTime) {
  976.         this.time = myTime;
  977.     }
  978. };
  979.  
  980. /*****************************
  981.     UserConfigVideo
  982. ******************************/
  983. function UserConfigVideo() {
  984. }
  985.  
  986. UserConfigVideo.prototype = {
  987.     enabled : null,
  988.     id : null,
  989.  
  990.     getIsEnabled : function() {
  991.         return this.enabled;
  992.     },
  993.  
  994.     setIsEnabled : function(myIsEnabled) {
  995.         this.enabled = myIsEnabled;
  996.     },
  997.  
  998.     getID : function() {
  999.         return this.id;
  1000.     },
  1001.  
  1002.     setID : function(myID) {
  1003.         this.id = myID;
  1004.     }
  1005. };
  1006.  
  1007. /*****************************
  1008.     UserConfigRadar
  1009. ******************************/
  1010. function UserConfigRadar() {
  1011. }
  1012.  
  1013. UserConfigRadar.prototype = {
  1014.     enabled : null,
  1015.     id : null,
  1016.  
  1017.     getIsEnabled : function() {
  1018.         return this.enabled;
  1019.     },
  1020.  
  1021.     setIsEnabled : function(myIsEnabled) {
  1022.         this.enabled = myIsEnabled;
  1023.     },
  1024.  
  1025.     getID : function() {
  1026.         return this.id;
  1027.     },
  1028.  
  1029.     setID : function(myID) {
  1030.         this.id = myID;
  1031.     }
  1032. };
  1033.  
  1034. /*****************************
  1035.     UserConfigSatelite
  1036. ******************************/
  1037. function UserConfigSatelite() {
  1038. }
  1039.  
  1040. UserConfigSatelite.prototype = {
  1041.     enabled : null,
  1042.     id : null,
  1043.  
  1044.     getIsEnabled : function() {
  1045.         return this.enabled;
  1046.     },
  1047.  
  1048.     setIsEnabled : function(myIsEnabled) {
  1049.         this.enabled = myIsEnabled;
  1050.     },
  1051.  
  1052.     getID : function() {
  1053.         return this.id;
  1054.     },
  1055.  
  1056.     setID : function(myID) {
  1057.         this.id = myID;
  1058.     }
  1059. };
  1060.  
  1061. /*****************************
  1062.     UserConfigLifeStyle
  1063. ******************************/
  1064. function UserConfigLifeStyle() {
  1065.     this.links = {};
  1066. }
  1067.  
  1068. UserConfigLifeStyle.prototype = {
  1069.     links : null,
  1070.     enabled : null,
  1071.  
  1072.     getIsEnabled : function() {
  1073.         return this.enabled;
  1074.     },
  1075.  
  1076.     setIsEnabled : function(myIsEnabled) {
  1077.         this.enabled = myIsEnabled;
  1078.     },
  1079.  
  1080.     getLinks : function() {
  1081.         return this.links;
  1082.     },
  1083.  
  1084.     setLinks : function(myLinks) {
  1085.         this.links = myLinks;
  1086.     },
  1087.  
  1088.     addLink : function(newLink) {
  1089.         this.links[newLink] = "true";
  1090.     },
  1091.  
  1092.     getLinkByID : function(linkID) {
  1093.         return links[linkID];
  1094.     }
  1095. };
  1096.